/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.eventos.beans;

import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import org.cip.esymons.eventos.bc.TipoConceptoDelegate;
import org.cip.esymons.eventos.be.TipoConcepto;

/**
 *
 * @author Lizardo
 */
public class TipoConceptoController {

    private TipoConceptoDelegate delegate;
    private TipoConcepto tipoConcepto;
    private List<TipoConcepto> listaTipoConcepto;
    private String mensaje;

    public TipoConceptoController() {
        inicializar();
    }

    public String inicializar() {
        delegate = new TipoConceptoDelegate();
        tipoConcepto = new TipoConcepto();
        listaTipoConcepto = new ArrayList<TipoConcepto>();
        listar();
        return "";
    }

    public String guardar() {
        setMensaje(getDelegate().guardar(getTipoConcepto())?"Se registro con exito":"Error al registrar los datos");
        tipoConcepto = new TipoConcepto();
        inicializar();
        return "OK";
    }

    public TipoConcepto getTipoConcepto() {
        return tipoConcepto;
    }

    public void setTipoConcepto(TipoConcepto tipoConcepto) {
        this.tipoConcepto = tipoConcepto;
    }

    public String actualizar() {
        setMensaje(getDelegate().actualizar(getTipoConcepto())?"Se actualizo con exito":"Error al actualizar los datos");
        return "OK";
    }

    public String eliminar() {
        tipoConcepto.setTpcEstado(false);
        getDelegate().actualizar(tipoConcepto);
        listar();
        return "OK";
    }

    public String listar() {
        listaTipoConcepto = getDelegate().listarTipoConceptos();
        return "listar";
    }

    public String cancelar() {
        tipoConcepto = new TipoConcepto();
        setMensaje("");
        return "OK";
    }

    public String reset() {
        setMensaje("");
        try {
            tipoConcepto = getDelegate().buscarTipoConcepto(tipoConcepto.getTpcCodigo());
        } catch (Exception ex) {

        }
        return "OK";
    }

    public List<TipoConcepto> getListaTipoConcepto() {
        return listaTipoConcepto;
    }

    public void setListaTipoConcepto(List<TipoConcepto> listaTipoConcepto) {
        this.listaTipoConcepto = listaTipoConcepto;
    }

    public String navegar_nuevo() {
        cancelar();
        return "nuevo";
    }

    public String navegar_editar() {
        setMensaje("");
        return "editar";
    }

    public SelectItem[] getComboTipoConcepto() {
        //Combo Tipo Concepto lista todos los ambientes
        try {
            listaTipoConcepto = new ArrayList<TipoConcepto>();
            listaTipoConcepto = delegate.listarTipoConceptos();
            SelectItem[] comboTipoConcepto;
            if (listaTipoConcepto.size() > 0) {
                comboTipoConcepto = new SelectItem[listaTipoConcepto.size()];
                for (int i = 0; i < listaTipoConcepto.size(); i++) {
                    comboTipoConcepto[i] = new SelectItem(listaTipoConcepto.get(i), listaTipoConcepto.get(i).getTpcNombre());
                }
            } else {
                comboTipoConcepto = new SelectItem[1];
                comboTipoConcepto[0] = new SelectItem(new TipoConcepto(), "No hay Tipo Conceptos registrados");
            }

            return comboTipoConcepto;

        } catch (Exception e) {
            //Mensaje al usuario
            listaTipoConcepto = new ArrayList<TipoConcepto>();
            SelectItem[] comboConcepto = new SelectItem[1];
            comboConcepto[0] = new SelectItem(new TipoConcepto(), "No hay Tipo Concepto");
            return comboConcepto;
        }
    }

    public SelectItem[] getComboTipoConceptoMejor() {
        try {
            System.out.println("Ingreso 1");
            SelectItem[] selects = null;
            List<TipoConcepto> listaTC = delegate.listarTipoConceptos();
            selects = new SelectItem[listaTC.size()];
            int cont = 0;
            for (TipoConcepto tc : listaTC) {
                SelectItem item = new SelectItem(tc.getTpcCodigo(), tc.getTpcNombre());
                selects[cont++] = item;
            }
            return selects;
        } catch (Exception e) {
            System.out.println("Ingreso Error: " + e.getMessage());
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen tipo conceptos");
            selects[0] = item;
            return selects;
        }
    }

    /**
     * @return the mensaje
     */
    public String getMensaje() {
        return mensaje;
    }

    /**
     * @param mensaje the mensaje to set
     */
    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }

    /**
     * @return the delegate
     */
    public TipoConceptoDelegate getDelegate() {
        return delegate;
    }

   
}
